package avicit.bdp.dgs.qa.utils.enums;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-03-15
 * @类说明：RuleDimension
 * @修改记录：
 * @注意事项：
 * @主要功能：规则维度
 */
public enum RuleDimension {
    COMPLETENESS(0, "完整性"),// 数据是否缺失，包括记录数缺失、字段缺失，属性缺失
    PROFILING(1, "有效性"),// 数据是否符合约定的类型、格式和数据范围等规则
    TIMELINESS(2, "及时性"),// 数据达到指定目标的时效性
    CONSISTENCY(3, "一致性"),// 数据是否符合业务逻辑，针对记录间的逻辑的校验
    ACCURACY(4, "准确性"),// 数据是否与指定的目标值匹配
    UNIQUENESS(5, "唯一性");// 数据记录是否重复

    private final int code;

    private final String desc;

    RuleDimension(int code, String desc){
        this.code = code;
        this.desc = desc;
    }

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    public static String getDescByCode(Integer code) {
        if (code != null) {
            RuleDimension[] values = RuleDimension.values();
            for (RuleDimension resourceType : values) {
                if (resourceType.getCode() == code) {
                    return resourceType.getDesc();
                }
            }
        }

        return null;
    }

    public static RuleDimension getTypeByCode(Integer code) {
        if (code != null) {
            RuleDimension[] values = RuleDimension.values();
            for (RuleDimension resourceType : values) {
                if (resourceType.getCode() == code) {
                    return resourceType;
                }
            }
        }

        return null;
    }
}
